#include <iostream>
using namespace std;
// constexpr修饰函数
// 参数是常量表达式时，函数的返回值也可以是常量表达式，编译器会在编译时计算。
// 当参数不是常量表达式时，函数将在运行时计算。
constexpr int add(int x, int y)
{
    return x + y;
}

int main()
{
    constexpr int a = 2;
    int b = 3;

    constexpr int result1 = add(a, a); // 编译时计算
    int result2 = add(a, b);           // 运行时计算

    cout << "The result of add(a, a) is: " << result1 << endl;
    cout << "The result of add(a, b) is: " << result2 << endl;

    return 0;
}